// function User(role, pages) {
//     this.role = role;
//     this.pages = pages;
// }
//
// // new User('admin', ['home', 'user', 'setting']);
// // new User('user', ['home', 'user']);
// // new User('guest', ['home']);
//
// function UserFactory(role) {
//     switch (role) {
//         case 'admin':
//             return new User(role, ['home', 'user', 'setting']);
//             break;
//         case 'user':
//             return new User(role, ['home', 'user']);
//             break;
//         case 'guest':
//             return new User(role, ['home']);
//             break;
//         default:
//             throw new Error('未知角色')
//     }
// }

class User {
    constructor(role, pages) {
        this.role = role;
        this.pages = pages;
    }
    static getInstance(role) {
        switch (role) {
            case 'admin':
                return new User(role, ['home', 'user', 'setting']);
                break;
            case 'user':
                return new User(role, ['home', 'user']);
                break;
            case 'guest':
                return new User(role, ['home']);
                break;
            default:
                throw new Error('未知角色')
        }
    }
}

User.getInstance('admin'); // {role: 'admin', pages: ['home', 'user', 'setting']}